﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SumerCoreDevOps.Application.Dtos.Responses.Auth
{
    /// <summary>
    /// 用户信息详情模型，包含用户基本属性和权限信息
    /// </summary>
    public class UserInfo
    {
        /// <summary>
        /// 用户ID（系统唯一标识）
        /// </summary>
        /// <example>10001</example>
        [Description("用户在系统中的唯一数字标识")]
        public long UserId { get; set; }

        /// <summary>
        /// 用户名（登录账号）
        /// </summary>
        /// <example>admin</example>
        [Description("用户登录系统时使用的账号")]
        public string Username { get; set; } = null!;

        /// <summary>
        /// 邮箱
        /// </summary>
        /// <example>admin@example.com</example>
        [Description("用户注册的邮箱地址，用于账号验证和通知")]
        public string Email { get; set; } = null!;

        /// <summary>
        /// 显示名称（昵称或真实姓名）
        /// </summary>
        /// <example>系统管理员</example>
        [Description("用户的显示名称，可为空，通常用于界面展示")]
        public string? DisplayName { get; set; }

        /// <summary>
        /// 用户角色列表
        /// </summary>
        /// <example>["Admin", "Editor"]</example>
        [Description("用户所属的角色集合，用于权限控制")]
        public List<string> Roles { get; set; } = new();

        /// <summary>
        /// 用户权限列表
        /// </summary>
        /// <example>["user:read", "user:write", "system:config"]</example>
        [Description("用户拥有的具体权限集合，粒度比角色更细")]
        public List<string> Permissions { get; set; } = new();
    }
}
